package com.neuedu.javase.collection.impl;

import java.util.Arrays;

/***
 * 项目名称:  MyJavaSE 
 * 包：  com.neuedu.javase.collection.impl 
 * date:   2025/11/5   13:38  
 * 描述:   模拟的集合
 *  @author : 张金山
 *  作者博客:   https://blog.fulfill.com.cn
 */
public class MyList2 {

    //内容
    private Object[]   data = new Object[99999];

    private int size = 0;

    public MyList2() {
    }


    //添加的功能
    public boolean add(Object item){
        data[size++] = item;
        return true;
    }

    //方法级别的 泛型
    public <S> S getItem(int index ){
        if(index < 0 || index >= size){
            throw new IndexOutOfBoundsException("索引越界......");
        }

        return (S) data[index];
    }


    public int length() {
        return size;
    }

    @Override
    public String toString() {
        return "MyList{" +
                "data=" + Arrays.toString(data) +
                '}';
    }

    public static void main(String[] args) {

        MyList2 list = new MyList2() ;

        //确实想放字符串
        list.add("张三");
        list.add("李四");
        list.add("王五");

        // 希望 在放置元素的时候验证下类型，
        // list.add(100);


        // System.out.println(list);


        for (int i = 0; i < list.length(); i++) {
            String otherName= list.getItem(i);
            Integer otherName2 = list.getItem(i);
            System.out.println(otherName);
        }
        
        
    }




}
